import { createApp } from 'vue'
import { createPinia } from 'pinia'
import router from './router'
import App from './App.vue'

// 导入浏览器兼容性工具
import { 
  setupGlobalErrorHandling, 
  showCompatibilityWarning, 
  checkCriticalFeatures,
  handleCompatibilityError 
} from './utils/browserCompatibility'

// 导入登录页面检测工具
import { initLoginPageDetection } from './utils/loginPageDetector'

// 导入Bootstrap CSS和JS
import 'bootstrap/dist/css/bootstrap.min.css'
import 'bootstrap/dist/js/bootstrap.bundle.min.js'

// 导入Bootstrap Icons
import 'bootstrap-icons/font/bootstrap-icons.css'

// 导入自定义样式
import './styles/main.css'
import './assets/css/responsive.css'

// 设置全局错误处理
setupGlobalErrorHandling()

// 检查关键功能
if (!checkCriticalFeatures()) {
  console.error('浏览器缺少关键功能，可能无法正常运行')
}

// 显示兼容性警告
showCompatibilityWarning()

// 初始化登录页面检测
initLoginPageDetection()

// 创建应用实例
const app = createApp(App)
const pinia = createPinia()

app.use(pinia)
app.use(router)

// 添加错误处理
app.config.errorHandler = (err, instance, info) => {
  console.error('Vue应用错误:', err, info)
  handleCompatibilityError(err, () => {
    // 重试逻辑：重新挂载应用
    app.mount('#app')
  })
}

// 挂载应用
try {
  app.mount('#app')
} catch (error) {
  console.error('应用挂载失败:', error)
  handleCompatibilityError(error, () => {
    // 延迟重试
    setTimeout(() => {
      app.mount('#app')
    }, 2000)
  })
}